Method and apparatus for monitoring, controlling, and configuring remote communication devices

ABSTRACT

A communication system for monitoring and/or controlling communication parameters of a remote communication device. The communication system monitors a communication channel that is created between the remote communication device and controls the communication device by adjusting internal settings of the communication device that represent communication parameters. The communication device is communicatively coupled to a communication channel to carry out ongoing communications between the communication device and the communication channel. Further, a software module is associated with the communication device, and the software module accesses the internal settings of the communication device from a remote location via the communication channel and performs diagnostics such as monitoring, controlling, and configuring the communication device using the internal settings of the communication device.

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] The present application claims priority pursuant to 35 U.S.C. §119(e) to U.S. Provisional Application Serial No. 60/076,784, filed Mar. 4, 1998, pending, which is hereby incorporated herein by reference in its entirety. Further, the present application claims priority pursuant to 35 U.S.C. §120 to U.S. Non-provisional Patent Application Serial No. 09/154,643, filed Sep. 17, 1998, pending, which is hereby incorporated herein by reference in its entirety.

BACKGROUND

[0002] 1. Field of the Invention

[0003] The present invention relates to communication systems and more particularly to a computer communication system that, among other things, monitors, controls, and diagnoses inefficiencies in communication parameters of the computer communication system while one computer system communicates with another computer system.

[0004] 2. Description of the Related Art

[0005] In traditional implementations, control and monitoring of computer communication systems primarily concern monitoring and controlling internal parameters of modems and are performed through the use of modem control strings such as “AT commands”. AT commands require a user to switch the modem from data to command mode so that the modem can be controlled with AT commands. Thus, AT commands interfere with the typical data flow of the modem and the commands do not reflect the true state of the modem in real time. Of note, in some traditional hardware modem implementations, limited control and status monitoring capabilities are obtained through adding special non-standard hardware interfaces. However, these special hardware interfaces are a relatively expensive solution to the problem of real time modem monitoring and the usage is limited due to its complexity.

[0006] If the user chooses not to add the additional network equipment to retrieve the modem information, the user is forced to rely on verbal guidance from another person, such as a support technician, located at a second modem site. This support technician views the parameters of the modem connection from their end of the connection, performs a modem diagnosis based on available resources, and reports configuration options to the user for manual modem control and monitoring. Clearly, this process for modem monitoring and control is unsatisfactory because, among other things, the process requires detailed and easily misunderstood verbal instructions for modem configuration, the process requires the modem to be switched from data to command mode to enter the diagnostic commands for modem configuration, and at least two people are required to diagnose and configure a single modem. Thus, the monitor and configuration process is time consuming and frustrating for those involved.

[0007] Of current interest is a computer communication system that overcomes the disadvantages of the related art. Among other advantages and benefits, the computer communication system according to the principles of the present invention monitors, controls, and diagnoses inefficiencies in communication parameters of the computer communication system while one computer system communicates with another computer system. In one embodiment, the computer communication system provides a modem monitor and control system that provides modem monitoring and control without requiring user interaction or switching the modem between data and command modes.

SUMMARY OF THE INVENTION

[0008] The principles according to the present invention can be realized through a communication system for monitoring, controlling, or configuring communication parameters of a remote communication device from a local communication system or a local communication device from a remote communication system. For example, the communication system monitors a communication channel that is created between two modems and controls the second modem by adjusting internal settings of the second modem that represent communication parameters. The second modem is communicatively coupled to the first modem to carry out ongoing communications between the first modem and the second modem through the communication channel. Further, a software module is associated with the first modem, and the software module accesses the internal settings of the second modem via the communication channel and performs diagnostics using the internal settings of the second modem. Of course, the software module could access the internal settings of the first modem directly and perform diagnostics using the internal settings of the first modem. Further, the software module can control the internal parameters of the either the second modem or the first modem regardless of which modem the software module is associated with.

[0009] The software module of the communication system typically includes a modem interface that interacts with the software module and assists the software module in performing diagnostics using the internal parameters of either the first or the second modem. Also, the software module accesses the communication channel transparently to the ongoing communications between the first modem and the second modem when the software module performs the diagnostics. Further, the software module accesses the communication channel without detrimentally affecting the ongoing communications between the first modem and the second modem. In another embodiment, the software module performs diagnostics using the internal parameters of the second modem via the same communication channel that is used to carry out ongoing communications between the first modem and the second modem. Of note, the software module can also control the internal parameters of the second modem.

[0010] The diagnostics performed by the software module of the communication system include monitoring a data stream in the communication channel in view of the internal settings of the second modem. Further, the diagnostics performed by the software module comprise configuring the internal settings of the second modem based on information obtained regarding the data stream between the first modem and the second modem. In addition, the diagnostics performed by the software module comprise controlling the internal settings of the second modem according to information obtained regarding the data stream between the first modem and the second modem.

[0011] It should be noted that the software module may include either a user interactive interface for diagnostics, or an automatic interface for diagnostics that requires no further user interaction. Further, the communication system may include a plurality of software modules being associated, respectively, with each of a plurality of modems. Regardless of the number of modems in the communication system, the modems are communicatively coupled via a network. The network is typically selected from the group consisting of a local area network, a wide area network, and a global area network, however, the network may include any combination of a local, wide, or global area network. In other words, the network could operate according to almost any existing network protocol, e.g., a peer-to-peer network, a transmission control protocol/Internet protocol network (TCP/IP), etc.

[0012] In another embodiment, the present invention can be described as a communication system comprising a first communication device having internal parameters; a second communication device having internal parameters and being communicatively coupled to the first communication device; a communications link that passes a data stream between the first communication device and the second communication device; and a module associated with the communications link that adjusts the internal parameters of one of the communication devices based on characteristics of the internal parameters of either the first communication device, the second communication device, or both.

[0013] In this embodiment, the module may include a communication interface that interacts with the communications link such that the module operates transparently to the data stream of the communications link. Further, the first communication device may be a local communication device and the second communication device may be a remote communication device. In addition, similar to the first embodiment, the communications link operates on a network such as a local area network, a wide area network, or a global area network or a combination thereof. In many embodiments, the communication system is designed for modems operating in a computer communication system. Thus, to assist in understanding the principles according to the present invention, the exemplary embodiments are generally described using computer systems communicating with modems.

[0014] A method for adjusting parameters of a communication system includes steps such as establishing a communications link between a first communication device and a second communication device, each communication device having internal parameters influencing communication protocols on the communications link. In addition, the steps include obtaining a software module for interacting with the communications link; retrieving, with the software module, characteristics of the first communication device and/or the second communication device based on the internal parameters of the first communication device, the second communication device, or both, and based on data passing through the communications link; and adjusting the internal parameters according to the retrieved characteristics to optimize communication between the first and the second communication devices on the communications link.

[0015] Adjusting the internal parameters may include adjusting the internal parameters of the second communication device, the first communication device, or both. In addition, adjusting the internal parameters may include monitoring or controlling the internal parameters of the first, the second, or both communication devices. Further, retrieving characteristics of the second communication device may comprise retrieving the characteristics transparently to the data passing through the communications link and/or retrieving the characteristics such that the data passing through the communications link is not detrimentally affected.

BRIEF DESCRIPTION OF THE DRAWINGS

[0016] A better understanding of the present invention can be obtained when the following detailed description of the preferred embodiment is considered in conjunction with the following drawings.

[0017]FIG. 1 is a block diagram of an exemplary computer communication system according to the principles of the present invention wherein the system is associated with an application for providing a computer system access to a communication channel via a modem.

[0018]FIG. 2 is a block diagram of an exemplary modem monitor/control interface of the computer communication system of FIG. 1.

[0019]FIG. 3 is a block diagram illustrating an exemplary modem for operation with the computer communication system of FIG. 1.

[0020]FIG. 4 is a block diagram of an exemplary computer communication system for monitoring and controlling both a local modem and a remote modem over a telephone line.

[0021]FIG. 5 is a block diagram of exemplary computer communication systems operating modem monitor/control applications, respectively, on both a client modem and a server modem in a peer-to-peer network.

[0022]FIG. 6 is a block diagram of exemplary computer communication systems operating modem monitor/control applications, respectively, on both a client modem and a server modem across the Internet.

[0023]FIG. 7 is a block diagram of an exemplary computer communication system operating according to simple network management protocol (SNMP) parameters such that a management application performs remote trouble shooting of a modem.

DETAILED DESCRIPTION OF THE DRAWINGS

[0024]FIG. 1 is a block diagram of an exemplary computer communication system 100 that operates according to the principles of the present invention. For ease of understanding, the system 100 is associated with a computer software application 102 for providing a computer system 104 access to a communication channel 106 via a communication device such as a modem 108. The computer software application 102 is commonly a typical computer telecommunications application such as a “web browser”, viz., Netscape™, Internet Explorer™, etc., or a modem utility, viz., Procomm™, etc. In short, the computer software application 102 utilizes the modem 108 capabilities to communicate with other modems through the communication channel 106. While the computer software application 102 uses the modem 108 to communicate with other modems, the computer communication system 100 examines the modem parameters of the modem 108 to determine if the modem configuration needs to be modified to attain optimal performance through the communication channel 106. As stated, the computer communication system 100 is an exemplary embodiment that is used to facilitate understanding of the principles according to the present invention. It should be understood that the present invention applies equally well to communication systems that operate with communication devices other than modems. However, for ease of understanding, the present invention will be described relative to computer communication systems using modems as the communication devices.

[0025] The computer communication system 100 includes a modem monitor/control application 110 that performs diagnostics on the modem 108 through a modem monitor/control interface 112 (the modem monitor/control application 110 and the modem monitor/control interface 112 sometimes collectively referred to herein as a “software module”). In one embodiment, the computer communication system 100 may perform these diagnostics through the same communication channel that the modem 108 uses to communicate with other modems. Thus, diagnostics can be performed on the “local” modem 108, on other “remote modems” (not shown in FIG. 1), or on both.

[0026] Advantageously, the diagnostics can also occur transparently to ongoing communications in the communication channel. Thus, the modem communication connection, a.k.a., the “data stream”, of the modem 108 can pass through the communication channel 106 without being detrimentally affected during diagnostics. Further, the diagnostics can be performed via user interaction through the modem monitor/control application 110 or, alternatively, the diagnostics can be performed independently of user interaction through the application 110. As stated, if any changes in the modem parameters are required to obtain optimal performance in the modem 108, the changes can be made without interruption in the data stream. Of course, the modem 108 could be a software modem or a hardware modem or any combination thereof, a pure software modem being defined as a modem implemented entirely in software and relying on a computer's processor to modulate and demodulate signals. Of note, the modem monitor/control interface 112 can be directly coupled to the modem 108 or the modem monitor/control interface 112 could instead be directly coupled to an operating system communication driver 114. These components can be combined in other manners as well. Further, the term “diagnostics”, as used herein, refers to monitoring, controlling, or configuring a modem and also refers to other actions that computer software performs in relation to communication devices.

[0027]FIG. 2 is a block diagram of the exemplary modem monitor/control interface 112 of the computer communication system 100. The modem monitor/control interface 112 includes a modem monitor/control application programming interface (API) 200, a modem monitor/control data link library (DLL) 202 that operates similarly to standard DLL software components, and a modem monitor/control driver 204 that operates similarly to standard software drivers. The API 200 provides code for monitoring and controlling a software modem while the modem is running or passing a data stream (see Appendixes A, B, and C). API 200 provides an easy method to write applications that provide various diagnostics that monitor parameters that change in real time (such as MSE, baud rate, echo canceller coefficiencies, etc.) as well as enabling the writing of applications that allow internal parameters to be modified while a telephony session is in progress. The API 200 can also provide easy means for field support by looking at various parameters and causing the modem to dump data into a file to be investigated later. Further, trouble shooting can be performed by changing various parameters while a data stream is running through the modem. Of note, in a preferred embodiment, the API 200 operates asynchronously and in parallel with the ordinary modem operation and does not interfere with the data stream. Thus, API 200 provides a true view of the modem parameters and does not slow the data transfer process.

[0028] Appendixes A, B, and C include exemplary embodiments of code portions of the API 200 and include three functions that could be considered the backbone of the API 200. First, the ModemConfigure function configures parameters within the modem and should be called only before the modem is activated. Second, the ModemControl function changes parameters within the modem to control the modem's operation and can be called during modem operation. Finally, the ModemMonitor function returns the current value of a parameter or set of parameters within the modem and can also be called during modem operation. The first parameter of the above functions is a code indicating which parameter (or parameter set) to monitor or change. The codes can be easily extended from time to time to provide additional visibility and control options for the modem. The same interfaces apply for additional parts of the modem such as speakerphone, tone detection/generation, etc. Thus, the computer communication system 100 is extendable and easy to use and can be used to monitor and control a modem without interfering with the ordinary operation of the modem. Further, the computer communication system 100 provides an easy method to develop applications for modem diagnostics and trouble shooting.

[0029]FIG. 3 is a block diagram illustrating the exemplary modem 108 for operation with the computer communication system 100 that is associated with a computer system 104 for accessing a network. The exemplary modem 108 includes a port driver 300, a controller 302, a data pump abstraction layer 304, an advanced modem operation scheduler 306, a sample buffer management 308, a hardware interface 310, and signal processing tasks 312. Of course, the exemplary modem 108 could be realized in various manners depending on the number of components implemented in software. The components most suited for either a software or a hardware implementation are the controller 302 and the data pump abstraction layer 304. Thus, although other components can be implemented in either hardware or software, the controller 302 and the data pump abstraction layer 304 are most commonly implemented in either hardware or software.

[0030]FIG. 4 is a block diagram of an exemplary computer communication system 400 for monitoring and controlling, in a computer system 401, both a local modem 402 and a remote modem 404 of another computer system 405 over a telephone line 406. Similar to the computer communication system 100, the computer communication system 400 includes a modem monitor/control application 408 and a modem monitor/control interface 410. The local modem 402 can be monitored/controlled just as the modem 108 is monitored and controlled. In addition, the remote modem 404 can be monitored by the computer communication system 400 by using some of the bandwidth of the telephone line 406. Of course, if the communication devices were not modems and they communicated across something other than a telephone line, similar usage of the bandwidth on the line would enable functionality of the communication system 400.

[0031] Referring to the telephone line 406, a data stream is created between the local modem 402 and the remote modem 404 that represents a modem connection. The telephone line 406 is used to transfer modem diagnostics and/or control information to/from the remote modem 404 by either “stealing” some of the data bits or using an alternative channel whenever applicable (e.g., V.34 control channel). The extraction of the diagnostics can be performed in one of at least two manners:

[0032] 1. A specific application can be run on the remote side that extracts modem parameters from the data stream and then sends them via the modem to the local side. The specific application can also receive control commands from the local modem and apply the commands to the remote modem.

[0033] 2. The remote modem itself multiplexes the diagnostics in the data stream (or the control channel) and monitors control commands without any interference from outside. The multiplexing/demultiplexing can be performed on any of the following two levels: by a data pump, or by an active data protocol (V.42, V.17). This second implementation for extracting diagnostics from the data stream is particularly suitable for software modem implementations where the modem can be easily modified for that kind of data manipulation and a wide variety of modem parameters can be extracted (e.g., see ModemMonCtrl API of the Appendixes).

[0034] In this manner, modem parameters from the remote modem 404 can be monitored and the remote modem 404 can be controlled with new parameters being set in the remote modem 404 from the computer communication system 400. Of course, the data stream between the local modem 402 and the remote modem 404 is ongoing and, potentially, the data stream passes without interruption from the computer communication system 400 regardless of whether the modems are software, hardware, or combination software/hardware modems.

[0035]FIG. 5 is a block diagram of exemplary computer communication systems operating modem monitor/control applications, respectively, on both a client modem 500 in a local computer system 501 and a server modem 502 in a remote computer system 503. The local and remote computer systems 501, 503 communicate across a peer-to-peer network 504. A client computer communication system 506 communicates with the client modem 500 while telecommunication software or application 508 having an operating system communication driver 510 uses the client modem 500 to maintain a modem connection across the peer-to-peer network 504. Similar to the computer communication systems 100 and 400, the client computer communication system 506 operates in a manner to monitor/control the client modem 500 by a client modem monitor/control application 509 or by the server modem 502 and a server computer communication system 512. The difference in this embodiment pertains to the computer communication systems including both the client computer communication system 506 and the server computer communication system 512. This arrangement is provided to ensure accurate monitoring and/or controlling of both server and client modems, whereby, the client modem 500 is monitored and controlled by a server modem monitor/control application 514. In addition, this embodiment demonstrates the flexibility of the system according to the present invention.

[0036]FIG. 6 is a block diagram of exemplary computer communication systems operating modem monitor/control applications, respectively, on both a client modem 600 in a local computer system 601 and in a remote computer system 603. The local and remote computer systems 601, 603 communicate across a network 604. This embodiment illustrates a structure similar to FIG. 5 except that, rather than peer-to-peer network 504, the local and remote computer systems 601, 603 communicate across a network 604 such as the Internet. Of course, the same advantages and benefits previously described in relation to modem monitoring, control, and diagnostics are realized when the modem 600 operates across the Internet through Internet service providers (ISPs). This extends the flexibility of the system by allowing the client modem 600 to be monitored and controlled from any remote computer system through connection to the server computer communication system 608. Of course, if communication devices other than modems are used to implement communication across the network 604, monitoring/controlling/configuring (i.e., diagnostics) can be performed in a similar manner as described herein.

[0037]FIG. 7 is a block diagram of an exemplary computer communication system operating according to simple network management protocol (SNMP) parameters such that a management application 700 in a computer system 701 performs remote trouble shooting of a modem 702 in another computer system 703. This exemplary embodiment demonstrates how a single manager or system administrator monitors and controls numerous client modems across a network 704. The network 704 will commonly be a network such as the Internet. In this embodiment, SNMP serves as the underlying protocol for the management application 700 because SNMP is a common network management protocol. Thus, a single manager can monitor and control modems such as the modem 702. There is also no limitation as to where on the network 704 that the manager resides, as long as the manager has access to the server. Additional computer systems 706 are illustrated and are used as support tools for the management application 700. The additional computer systems 706 each support a modem web page 708 that enables remote diagnostics of the modem 702 from anywhere on the network 704. Of course, other network management protocols could be used to implement the principles according to the present invention and the description of SNMP operating over the network 704 should not be construed to limit the appended claims.

[0038] The above-listed sections and included information are not exhaustive and are only exemplary for certain computer/modem/network systems. The particular sections and included information in a particular embodiment may depend upon the particular implementation and the included devices and resources. Although a system and method according to the present invention has been described in connection with the preferred embodiments, it is not intended to be limited to the specific form set forth herein, but, on the contrary, it is intended to cover such alternatives, modifications, and equivalents as can be reasonably included within the spirit and scope of the invention as defined by the appended claims. 

1. A communication system comprising: a modem; a communication channel; the modem having internal settings representing communication parameters, the modem being communicatively coupled to the communication channel to carry out ongoing communications through the communication channel; and a software module being remotely associated with the modem, the software module accessing the internal settings of the modem via the communication channel and performing diagnostics using the internal settings of the modem.
 2. The communication system of claim 1 wherein the software module further comprises a modem interface that interacts with the software module and assists the software module in performing diagnostics using the internal parameters of the modem.
 3. The communication system of claim 1 wherein the software module accesses the communication channel transparently to the ongoing communications between the modem and the communication channel when the software module performs the diagnostics using the internal parameters of the modem.
 4. The communication system of claim 1 wherein the software module accesses the communication channel without detrimentally affecting the ongoing communications between the modem and the communication channel.
 5. The communication system of claim 1 wherein the software module performs diagnostics using the internal parameters of the modem via the same communication channel that is used to carry out ongoing communications between the modem and the communication channel.
 6. The communication system of claim 1 wherein the diagnostics performed by the software module comprise monitoring a data stream in the communication channel.
 7. The communication system of claim 1 wherein the diagnostics performed by the software module comprise configuring the internal settings of the modem based on information obtained regarding a data stream between the modem and the communication channel.
 8. The communication system of claim 1 wherein the diagnostics performed by the software module comprise controlling the internal settings of the modem according to information obtained regarding a data stream across the communication channel.
 9. The communication system of claim 1 wherein the software module further comprises a user interactive interface for diagnostics.
 10. The communication system of claim 1 further comprising a plurality of software modules being associated, respectively, with each of a plurality of modems.
 11. The communication system of claim 1 wherein the modem is communicatively coupled to another modem via a network.
 12. The communication system of claim 1 wherein the software module is accessed through at least one remote computer system.
 13. A communication system comprising: a first communication device having internal parameters; a second communication device having internal parameters and being communicatively coupled to the first communication device; a communications link that passes a data stream between the first communication device and the second communication device; and a module associated with the communications link that adjusts the internal parameters of one of the communication devices based on characteristics of the internal parameters of the first communication device, the second communication device, or both.
 14. The communication system of claim 13 wherein the module comprises a communication interface that interacts with the communications link such that the module operates transparently to the data stream of the communications link.
 15. The communication system of claim 13 wherein the first communication device comprises a local communication device and the second communication device comprises a remote communication device.
 16. The communication system of claim 13 wherein the communications link operates on a network being selected from the group consisting of a local area network, a wide area network, and a global area network.
 17. The communication system of claim 13 wherein the first communication device and the second communication device, respectively, comprise a first modem and a second modem.
 18. The communication system of claim 13 wherein the module is remotely located, with respect to the second communication device, and is accessible by at least one remotely located computer system.
 19. The communication system of claim 13 wherein the module adjusts the internal parameters of the first communication device based on characteristics of the internal parameters of the first communication device, the second communication device, or both.
 20. A method for adjusting parameters of a communication system comprising: establishing a communications link between a first communication device and a second communication device, each communication device having internal parameters influencing communication protocols on the communications link; obtaining a software module for interacting with the communications link; retrieving, with the software module, characteristics of the second communication device based on the internal parameters of the first communication device, the second communication device, or both; and adjusting the internal parameters according to the retrieved characteristics to optimize communication between the first and the second communication devices on the communications link.
 21. The method of claim 20 wherein adjusting the internal parameters comprises adjusting the internal parameters of the second communication device.
 22. The method of claim 20 wherein adjusting the internal parameters comprises adjusting the internal parameters of the first communication device.
 23. The method of claim 20 wherein adjusting the internal parameters comprises controlling the internal parameters of the second communication device.
 24. The method of claim 20 wherein retrieving characteristics of the second communication device comprises retrieving the characteristics transparently to the data passing through the communications link.
 25. The method of claim 20 wherein retrieving characteristics of the second communication device comprises retrieving the characteristics such that the data passing through the communications link is not detrimentally affected. 